Atom is a Haskell DSL for designing hard realtime embedded software.
Based on guarded atomic actions (similar to STM), Atom enables highly
concurrent programming without the need for mutex locking. In addition,
Atom performs compile-time task scheduling and generates code with
deterministic execution time and constant memory use, simplifying the
process of timing verification and memory consumption in hard realtime
applications. Without mutex locking and run-time task scheduling, Atom
eliminates the need and overhead of RTOSs for many embedded
applications.
